#pragma once
#include "MeshObjectBase.h"
#include "ScriptBase.h"
#ifdef USE_SCRIPT_PYTHON
#include "boost/python.hpp"
class PythonObject : public ScriptBase
{
public:
	PythonObject(const ZMString& strObjName, const ZMString& strFileName, const ZMString& mainClass, const ZMString& mainFunc);

	PythonObject(const QDomNode& node);
	
	~PythonObject();

	ZMVector<SharedPointer<UIDataBase>> GetParam()
	{
		return m_vParam;
	}
	

	static void GetCurrentMeshName(ZMString& strCurrentMeshName, ZMString& strScriptName)
	{
		strCurrentMeshName = m_strCurrentMeshName;
		strScriptName = m_currentScriptName;
	}

	static void SetCurrentMeshName(const ZMString& val, const ZMString& strScriptName)
	{
		m_currentScriptName = strScriptName;
		m_strCurrentMeshName = val; 
	}
protected:
	void SetParamCore(const ZMVector<SharedPointer<UIDataBase>>& vParam)
	{
		m_vParam = vParam;
	}

	virtual ZMVector<suDrawMesh> GetMeshData(const ZMString& strMeshName = "");
private:
	ZMString m_mainClass, m_mainFunc, m_filePath;

	ZMVector<SharedPointer<UIDataBase>> m_vParam;

	static ZMString m_strCurrentMeshName, m_currentScriptName;
};

#endif